package com.kgc.ubatnet.ubatnetuserservice.service;

import com.kgc.ubatnet.bean.PmsBaseAttrInfo;
import com.kgc.ubatnet.bean.PmsBaseAttrInfoExample;
import com.kgc.ubatnet.bean.PmsBaseAttrValue;
import com.kgc.ubatnet.bean.PmsBaseAttrValueExample;
import com.kgc.ubatnet.service.AttrService;
import com.kgc.ubatnet.ubatnetuserservice.mapper.PmsBaseAttrInfoMapper;
import com.kgc.ubatnet.ubatnetuserservice.mapper.PmsBaseAttrValueMapper;
import org.apache.dubbo.config.annotation.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class AttrServiceImpl implements AttrService {
    @Resource
    PmsBaseAttrInfoMapper pmsBaseAttrInfoMapper;
    @Resource
    PmsBaseAttrValueMapper pmsBaseAttrValueMapper;
    @Override
    public List<PmsBaseAttrInfo> select(Long catalog3Id) {
        PmsBaseAttrInfoExample example=new PmsBaseAttrInfoExample();
        PmsBaseAttrInfoExample.Criteria criteria = example.createCriteria();
        criteria.andCatalog3IdEqualTo(catalog3Id);
        return pmsBaseAttrInfoMapper.selectByExample(example);
    }

    @Override
    public Integer add(PmsBaseAttrInfo pmsBaseAttrInfo) {
        if(pmsBaseAttrInfo.getId()==null){
            //此为添加
            int insert = pmsBaseAttrInfoMapper.insert(pmsBaseAttrInfo);
        }else{
            //此为修改
            int i = pmsBaseAttrInfoMapper.updateByPrimaryKey(pmsBaseAttrInfo);
        }
        if(pmsBaseAttrInfo.getPmsBaseAttrValueList()!=null) {
            PmsBaseAttrValueExample example = new PmsBaseAttrValueExample();
            PmsBaseAttrValueExample.Criteria criteria = example.createCriteria();
            criteria.andAttrIdEqualTo(pmsBaseAttrInfo.getId());
            pmsBaseAttrValueMapper.deleteByExample(example);
        }
        if(pmsBaseAttrInfo.getPmsBaseAttrValueList()!=null&&pmsBaseAttrInfo.getPmsBaseAttrValueList().size()>0){
            int i = pmsBaseAttrValueMapper.insertBatch(pmsBaseAttrInfo.getId(), pmsBaseAttrInfo.getPmsBaseAttrValueList());
        }
            return pmsBaseAttrInfo.getId().intValue();
    }

    @Override
    public PmsBaseAttrInfo getAttrValueList(Long attrId) {
        PmsBaseAttrInfo pmsBaseAttrInfo=new PmsBaseAttrInfo();
        if(attrId!=0){
            pmsBaseAttrInfo = pmsBaseAttrInfoMapper.selectByPrimaryKey(attrId);
        }
        PmsBaseAttrValueExample example=new PmsBaseAttrValueExample();
        example.createCriteria().andAttrIdEqualTo(pmsBaseAttrInfo.getId());
        List<PmsBaseAttrValue> pmsBaseAttrValues = pmsBaseAttrValueMapper.selectByExample(example);
        pmsBaseAttrInfo.setPmsBaseAttrValueList(pmsBaseAttrValues);
        return pmsBaseAttrInfo;
    }

    //删除平台属性
    @Override
    public Integer deleAttr(Long id) {

        int i = pmsBaseAttrInfoMapper.deleteByPrimaryKey(id);
        if(i>0){
            PmsBaseAttrValueExample example=new PmsBaseAttrValueExample();
            example.createCriteria().andAttrIdEqualTo(id);
            pmsBaseAttrValueMapper.deleteByExample(example);
        }
        return i;
    }

}
